package cn.itcast.nems.employee.service;

import java.util.Collection;
import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;

import cn.itcast.nems.employee.dao.entity.Employee;
import cn.itcast.nems.employee.dto.EmployeeDTO;

/**
 * <p>
 * 员工业务接口
 * </p>
 *
 * @author zhouwei
 * @since 2023/11/7 2:05 PM
 **/
public interface EmployeeService extends IService<Employee> {
    /**
     * 检查并持久化员工信息
     * @param employeeDTO 需要持久化的员工信息
     */
    void checkAndSaveEmployee(EmployeeDTO employeeDTO);

    Employee findOneByEmail(String email);
    
    /**
     * 
     * 功能描述：通过姓名查找员工
     *
     * @param name 姓名
     * @return 员工信息（如果重名返回多个）
     * 
     * @author 刘曙
     *
     * @since 2024年3月17日
     *
     * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
     */
    List<Employee> findByName(String name);

    List<Employee> findMoreByEmail(Collection<String> email);
    /**
     * 添加用户
     *
     * @param employee
     */
    void created(Employee employee);
    /**
     * 员状态(state：1在职、2离职)
     * @param id
     * @param status 1在职、2离职
     */
    void updateStatus(String id, Integer status);
    /**
     * 修改用户
     *
     * @param employee
     */
    void update(Employee employee);
}
